# -*- coding: utf-8 -*-
"""
    @Author ljy
    @Date 2020/11/4 17:41
    @Describe 
"""
from dbs import Dao

class UserDao(Dao):

    def login(self,name,pwd):
        """
        用户登录
        :param name: 用户名
        :param pwd: 口令
        :return: 调用db中的query(),返回查询结果
        """
        return self.query('tb_user', 'id', 'phone', 'nick_name', 'head', 'is_active',
                    where='username=%s and auth_string=%s', args=(name, pwd), one=True)


    def get_user_active_state(self,id):
        """
        获取用户活跃状态
        :param id: 用户id
        :return: 调用db中的query(),返回指定用户的状态
        """
        return self.query('tb_user', 'id', 'username', 'is_active',
              where='id=%s', args=(id,), one=True)


    def active(self,id):
        """
        更改用户活跃状态
        :param id: 用户id
        :return: 调用db中的update()，更新数据库中该用户的活跃状态
        """
        return self.update('tb_user',id=id,is_active=1)


    def is_active(self,id):
        """
        获取用户的活跃状态
        :param id:
        :return: 调用db中的update()，返回该用户的活跃状态
        """
        return self.query('tb_user','id',where='id=%s and is_active=1',args=(id,),one=True)

    def update_detail(self,**item):
        """
        更新用户信息
        :param item: 修改的字段
        :return: 调用db中的update()，更新数据库中信息
        """
        return self.update('tb_user', **item)


    def regist_check(self,username):
        """
        注册时验证用户名是否合法
        :param username: 注册的用户名
        :return: 调用db中的update()，看数据库中是否存在该用户名
        """
        return self.query('tb_user','id',where='username=%s',args=(username,),one=True)

    def register(self,**item):
        """
        存储新用户的注册信息
        :param item: 新用户的字段信息
        :return: 调用db中的save()，将用户信息保存到数据库
        """
        return self.save('tb_user',**item)

    def upload_avater(self,id,file_url):
        """
        用户头像上传
        :param id: 用户id
        :param file_url: 图片路径
        :return: 调用db中的update()，数据库中更新该用户信息
        """
        return self.update('tb_user',id=id,head=file_url)

